import db from "utils/localstorage/main.js";

/**
 * @author 技术运维中心 阮中楠
 * @description
 * 为了实现系统切换的特征值全局保存
 */
const systemChoice = {
  namespaced: true,

  state: {
    /**
     * @description
     * 顶部导航栏的系统选择值。这里会提供一个标记，用于告诉侧边栏切换的数组下标。
     * 其本质是数组下标的标记值。通过改变数组下标，实现页面内系统的切换。
     *
     * 该值默认设置成null，实际储存的值是数值。
     *
     * null将会在其他地方参与逻辑判断。若要初始值，请同步设置。
     */
    systemChoiceNumber: db.get("systemChoiceNumber") || null,

    /** 顶部导航栏 菜单数目 */
    topNavMenuNum:
      db.get("topNavMenuNum").toString() === "[object Object]"
        ? 0
        : db.get("topNavMenuNum"),
  },

  mutations: {
    /**
     * 设置系统选择数组下标值
     * @param { unknown } state
     * @param { number } val 系统选择的数组下标
     */
    setSystemChoiceNumber(state, val) {
      db.save("systemChoiceNumber", val);
      state.systemChoiceNumber = val;
    },

    setTopNavMenuNum(state, val) {
      db.save("topNavMenuNum", val);
      state.topNavMenuNum = val;
    },
  },
};

export default systemChoice;
